package com.cp.weixin.controller;

import com.cp.weixin.entity.Result;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;

@Api(value = "This is LoginController，登录控制器")
@RestController
public class LoginController {

    @ApiOperation(value = "用户登录", notes = "登录参数及授权口令token登录，token可以为空")
    // @ApiImplicitParams({@ApiImplicitParam(name = "loginPara", value = "登录参数", required = true, dataType = "String")})
    @ApiImplicitParam(name = "loginPara", value = "登录参数", required = true, dataType = "String")
    @PostMapping(value = "/login")
    public Result login(@RequestParam(name = "loginPara") String loginPara, HttpSession session) {
        Result result = new Result();
        if (IndexController.loginPara.equals(loginPara)) {
            session.setAttribute("blog-session", loginPara);
            result.setState(true);
            result.setMessage("登录成功");
            result.setData(session.getId());
            return result;
        } else {
            result.setState(false);
            result.setMessage("登录失败");
            return result;
        }
    }


    @ApiOperation(value = "swagger 测试方法")
    @GetMapping(value = "/swaggerTest")
    public Result swaggerTest() {
        Result result = new Result();
        result.setMessage("swagger test successful");
        result.setState(true);
        return result;
    }
}



//@Api： 描述 Controller
//@ApiIgnore： 忽略该 Controller，指不对当前类做扫描
//@ApiOperation： 描述 Controller类中的 method接口
//@ApiParam： 单个参数描述，与 @ApiImplicitParam不同的是，他是写在参数左侧的。如（ @ApiParam(name="username",value="用户名")Stringusername）
//@ApiModel： 描述 POJO对象
//@ApiProperty： 描述 POJO对象中的属性值
//@ApiImplicitParam： 描述单个入参信息
//@ApiImplicitParams： 描述多个入参信息
//@ApiResponse： 描述单个出参信息
//@ApiResponses： 描述多个出参信息
//@ApiError： 接口错误所返回的信息